#ifndef NODOINTERNO_H_
#define NODOINTERNO_H_

#include "Nodo.h"
#include "../Entidades/Utils.h"
using namespace Entidades;
namespace Arboles {

class NodoInterno: public Nodo {

public:

	NodoInterno(unsigned int capacidadMinima, unsigned int capacidadMaxima);

	unsigned int getNumeroNodoHijoALeer(string clave);
	unsigned int getHermanoIzquierdoDe(unsigned int numeroDeNodo);
	unsigned int getHermanoDerechoDe(unsigned int numeroDeNodo);
	Utils::ResultadoOperacionArbol actualizarClaveDe(unsigned int numeroDeNodo, string clave);

	virtual Utils::ResultadoOperacionArbol agregar(RegistroArbol* registro);
	virtual Utils::ResultadoOperacionArbol remover(RegistroArbol* registro);

	virtual void hidratarse(char* buffer, unsigned int tamanioDelBuffer);
	virtual char* construirBuffer();
	virtual unsigned int getTamanioDelBuffer();

	virtual ~NodoInterno();

};
}

#endif /* NODOINTERNO_H_ */
